home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mission 3
/
Mission 3.zip
/
Mission 3.iso
/
spiele
/
gemamigo
/
src
/
viewwin.cc
< prev
next >
Wrap
C/C++ Source or Header
|
1998-10-29
|
2KB
|
103 lines
#include "viewwin.h"
#include "gamewin.h"
#include <gemamigo.h>
#include <gemr.h>
#include <gemal.h>
#include <stdio.h>
ViewWindow::ViewWindow(GEMactivity& act, GEMrsc& rsc, GameWindow* user) :
GEMformwindow(act,rsc,VIEWWIN),
viewuser(user),
popup(rsc,CHOICELIST,CHOICE1,CHOICEN,CHOICESCROLLBAR),
line_colour(*this,COL_LINE,popup),
board_colour(*this,COL_BOARD,popup),
highlight_colour(*this,COL_HIGHLIGHT,popup),
board_pattern(*this,PAT_BOARD,popup)
{
SetName(rsc.String(VIEWWIN_TITLE));
FILE* cnf=fopen("gemamigo.cnf","r");
if (cnf) {
int v;
fscanf(cnf,"%d",&v); line_colour.Choose(v);
fscanf(cnf,"%d",&v); board_colour.Choose(v);
fscanf(cnf,"%d",&v); highlight_colour.Choose(v);
fscanf(cnf,"%d",&v); board_pattern.Choose(v);
fscanf(cnf,"%d",&v);
Object(SML_STONE).Selected(v==0);
Object(MID_STONE).Selected(v==1);
Object(BIG_STONE).Selected(v==2);
GRect wpos;
fscanf(cnf,"%d %d %d %d",&wpos.g_x,&wpos.g_y,&wpos.g_w,&wpos.g_h);
viewuser->Move(wpos.g_x,wpos.g_y);
viewuser->GEMformwindow::Resize(wpos.g_w,wpos.g_h);
fscanf(cnf,"%d %d",&wpos.g_x,&wpos.g_y);
Move(wpos.g_x,wpos.g_y);
fclose(cnf);
} else {
GEMalert no_cnf(rsc,NO_CNF);
no_cnf.Alert();
line_colour.Choose(1);
board_colour.Choose(1);
highlight_colour.Choose(0);
board_pattern.Choose(4);
Open();
}
}
GEMfeedback ViewWindow::DoItem(int item, const GEMevent& e)
{
switch (item) {
case BIG_STONE:
;
break; case MID_STONE:
;
break; case SML_STONE:
;
break; case VIEW_SAVE:
FILE* cnf=fopen("gemamigo.cnf","w");
fprintf(cnf,"%d\n",LineColour());
fprintf(cnf,"%d\n",BoardColour());
fprintf(cnf,"%d\n",HighlightColour());
fprintf(cnf,"%d\n",BoardPattern());
fprintf(cnf,"%d\n",StoneSize());
GRect wpos=viewuser->BorderRect();
fprintf(cnf,"%d %d %d %d\n",wpos.g_x,wpos.g_y,wpos.g_w,wpos.g_h);
wpos=BorderRect();
fprintf(cnf,"%d %d\n",wpos.g_x,wpos.g_y);
fclose(cnf);
break; default:
GEMformwindow::DoItem(item,e);
bool recog=FALSE;
while (item && !recog) {
recog=TRUE;
switch (item) {
case COL_LINE:
;
break; case COL_BOARD:
;
break; case COL_HIGHLIGHT:
;
break; case PAT_BOARD:
;
break; default:
recog=FALSE;
item=Parent(item);
}
}
}
viewuser->ViewChanged();
return ContinueInteraction;
}
int ViewWindow::StoneSize() const
{
if (Object(SML_STONE).Selected()) return 0;
if (Object(MID_STONE).Selected()) return 1;
if (Object(BIG_STONE).Selected()) return 2;
return 0;
}